#include <iostream>
#include <stdio.h>
#include<cstring>
using namespace std;
int citys[10005];
typedef struct city
{
    int a,b;  //两城市之间的边
}Num;

int main()
{
    int N,M;  
    //敌方城市个数N（于是默认城市从 1 到 N 编号）和连接两城市的通路条数M
    int a,b;  //记录边
    cin>>N;
    cin>>M;
    Num num[10005];
    for(int i=0;i<M;i++)
    {
        cin>>a;
        cin>>b;
        num[i].a = a;
        num[i].b = b;
    }
    int k;
    cin>>k;  //K 种方案
    while (k--)
    {
        memset(citys,0,sizeof(citys));
        //cout<<citys[1]<<endl;
        int temp;
        cin>>temp;  //方案中计划攻下的城市数量
        while (temp--)
        {
            int m;
            cin>>m;   //计划攻下的城市编号
            citys[m] = -1;
        }
        bool flag = false;
        for(int i=0;i<M;i++)
        {
            if (citys[num[i].a]==0&&citys[num[i].b]==0)
            {
                flag = true;
                break;
            }
        }
        if(flag)
            cout<<"NO"<<endl;
        else
            cout<<"YES"<<endl;
    }
    
}